#ifndef APP_LOGGER_H
#define APP_LOGGER_H

#include <iostream>

using namespace std;

class AppLogger {
public:
	static AppLogger * getInstance(const char* moduleName);
	~AppLogger();

	//output message as debug level
	void debug(const char* msg);

	//log messages with format and variable argument list
	void debug(string format, ...);


	//output message as info level
	void info(const char* msg);

	//log messages with format and variable argument list, at info level
	void info(string format, ...);

	//output message as error level
	void error(const char* msg);

	//log messages with format and variable argument list, at error level
	void error(string format, ...);

private:
	AppLogger(const char* moduleName);
	const char* moduleName;

	static void initLogSettings();
	static bool logInited;
};

#endif /* APP_LOGGER_H */

